﻿using System.Collections.Generic;
using Resn.WhuPub.DML;

namespace Resn.WhuPub.BIL
{
        /// <summary>
        ///定义院\系\处\所\公司部门的属性和方法
        /// </summary>
        public interface IDepartment : IEntity
        {
                #region 属性

                #region 基本属性

                /// <summary>
                ///获取公司部门所属分校/分公司的Id
                /// </summary>
                /// <value>
                ///公司部门所属分校/分公司的Id
                /// </value>
                string CorporateBranchId { get; }

                /// <summary>
                ///获取或设置公司部门的名称
                /// </summary>
                /// <value>
                ///公司部门的名称
                /// </value>
                string Name { get; set; }

                #endregion 基本属性

                /// <summary>
                ///获取部门模型
                /// </summary>
                /// <value>
                ///部门模型
                /// </value>
                DepartmentModel Model { get; }

                /// <summary>
                ///获取部门所属的分校/分公司
                /// </summary>
                /// <value>
                ///部门所属的分校/分公司
                /// </value>
                ICorporateBranch CorporateBranch { get; }

                /// <summary>
                ///获取院/系/处/所下属开设的专业
                /// </summary>
                /// <value>
                ///院/系/处/所下属开设的专业
                /// </value>
                List<IMajorSetup> MajorSetups { get; }

                /// <summary>
                ///获取部门下属的联系人
                /// </summary>
                /// <value>
                ///部门下属的联系人
                /// </value>
                List<IContact> Contacts { get; }

                #endregion 属性

                #region 方法

                /// <summary>
                /// 创建专业开设
                /// </summary>
                /// <param name="majorId">专业标识</param>
                /// <param name="managerName">负责人姓名</param>
                /// <param name="teachingManagerName">教学负责人姓名</param>
                /// <returns>
                /// 创建的专业开设对象
                /// </returns>
                IMajorSetup CreateMajorSetup(string majorId, string managerName, string teachingManagerName);


                /// <summary>
                ///创建联系人
                /// </summary>
                IContact CreateContact(string name, string title = "", string duty = "", string telephone = "",
                                       string qq = "", string email = "", bool isOwnAuthor = false, string memo = "");

                

                #endregion

        }
}